package org.erp.product.domain.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.erp.product.infrastructure.enums.RepairStatusEnum;

import java.util.Date;

import static com.fasterxml.jackson.annotation.JsonProperty.Access.READ_ONLY;

/**
 * @author libin
 * @version 1.0
 * @description:
 * @date 2025/11/26 22:47
 **/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class RepairInfoVo {
    /**
     * 自增id
     */
    private Long id;
    /**
     * 库存id
     */
    private Long stockId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 品牌id
     */
    private Long brandId;
    /**
     * 品类id
     */
    private Long categoryId;
    /**
     * 机型id
     */
    private Long modelId;
    /**
     * 系列id
     */
    private Long seriesId;
    /**
     * 成色等级id
     */
    private Long levelId;
    /**
     * 产品imei
     */
    private String productImei;
    /**
     * 背贴码
     */
    private String productCode;
    /**
     * 产品颜色
     */
    private String productColor;
    /**
     * 产品内存
     */
    private String productStorage;
    /**
     * 采购金额
     */
    private Integer costPrice;
    /**
     * 维修价格
     */
    private Integer repairPrice;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 部门名称
     */
    private String deptName;
    /**
     * 租户id
     */
    private Long tenantId;
    /**
     * 租户名称
     */
    private String tenantName;
    /**
     * 仓库id
     */
    private Long storeId;
    /**
     * 仓库名称
     */
    private String storeName;
    /**
     * 在途天数
     */
    private Integer inTransitDay;
    /**
     * 在库天数
     */
    private Integer inStockDay;
    /**
     * 操作人id
     */
    private Long operationId;
    /**
     * 操作人名称
     */
    private String operationName;
    /**
     * 调拨类型
     */
    private Integer transferType;
    /**
     * 维修状态
     */
    private Integer repairStatus;
    /**
     * 维修状态字符串
     */
    @JsonProperty(access = READ_ONLY)
    private String repairStatusStr;
    /**
     * 创建时间
     */
    private Date createTime;

    public String getRepairStatusStr() {
        return RepairStatusEnum.getMessageByCode(this.repairStatus);
    }

}
